<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>01computed和watch的区别</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- computed能实现的watch也能实现   但是computed不能实现异步操作 eg:setTimeout-->
        <!-- 准备好一个容器-->
        <div id="demo">
            姓: <input type="text" v-model="fristName"><br>
            名: <input type="text" v-model="lastName"><br>
            全名:  <span>{{fullName}}</span>
        </div>
    </body>

    <script type="text/javascript">
        //阻止 vue 在启动时生成生产提示。
        Vue.config.productionTip = false
        new Vue({
            el:'#demo',
            data:{
                fristName:'zhang',
                lastName:'san',
                fullName:''
            },
            // computed:{
            //     fullName(){
            //         return this.fristName + '-' + this.lastName
            //     }
            // }
            watch:{
                fristName:{
                    // 立即监视  会在发生改变前先监视一次
                    immediate: true,
                    handler(val){
                        this.fullName = val + '-' + this.lastName; 
                    }
                },
                // lastName(val){
                //     this.fullName = this.fristName + '' + val;
                // }
                lastName(val){
                    let time = setInterval(()=>{
                        this.fullName = this.fristName + '-' + val;
                        console.log(1)
                        clearInterval(time);
                    },1000);    
                }
            }
        })
    </script>
</html>